home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / CIIGSIncludes / IntMath.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-03  |  4.1 KB  |  96 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: IntMath.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc.1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __INTMATH__
  14. #define __INTMATH__
  15.  
  16.  
  17. /* Error Codes */
  18. #define imBadInptParam 0x0B01  /* bad input parameter */
  19. #define imIllegalChar 0x0B02  /* Illegal character in string */
  20. #define imOverflow 0x0B03  /* integer or long integer overflow */
  21. #define imStrOverflow 0x0B04  /* string overflow */
  22.  
  23. /* Limit Values */
  24. #define minLongint 0x80000000  /* minimum negative signed long integer */
  25. #define minFrac 0x80000000  /* pinned value for negative Frac overflow */
  26. #define minFixed 0x80000000  /* pinned value for negative Fixed overflow */
  27. #define minInt 0x8000  /* Minimum negative signed integer */
  28. #define maxInt 0x7FFF  /* Maximum positive signed integer */
  29. #define maxUInt 0xFFFF  /* Maximum positive unsigned integer */
  30. #define maxLongint 0x7FFFFFFF  /* maximum positive signed Longint */
  31. #define maxFrac 0x7FFFFFFF  /* pinned value for positive Frac overflow */
  32. #define maxFixed 0x7FFFFFFF  /* pinned value for positive Fixed overflow */
  33. #define maxULong 0xFFFFFFFFL  /* maximum unsigned Long */
  34. struct IntDivRec {
  35.    Word quotient; /* quotient from SDivide */
  36.    Word remainder; /* remainder from SDivide */
  37. } ;
  38. typedef struct IntDivRec IntDivRec, *IntDivRecPtr;
  39. struct LongDivRec {
  40.    Longint quotient; /* Quotient from LongDiv */
  41.    Longint remainder; /* remainder from LongDiv */
  42. } ;
  43. typedef struct LongDivRec LongDivRec, *LongDivRecPtr;
  44. typedef LongDivRec DivRec, *DivRecPtr; /* for backward compatability */
  45. struct LongMulRec {
  46.    Longint lsResult; /* low 2 words of product */
  47.    Longint msResult; /* High 2 words of product */
  48. } ;
  49. typedef struct LongMulRec LongMulRec, *LongMulRecPtr;
  50. struct WordDivRec {
  51.    Word quotient; /* Quotient from UDivide */
  52.    Word remainder; /* remainder from UDivide */
  53. } ;
  54. typedef struct WordDivRec WordDivRec, *WordDivRecPtr;
  55. extern pascal Word Dec2Int() inline(0x280B,dispatcher);
  56. extern pascal Longint Dec2Long() inline(0x290B,dispatcher);
  57. extern pascal Frac Fix2Frac() inline(0x1C0B,dispatcher);
  58. extern pascal Longint Fix2Long() inline(0x1B0B,dispatcher);
  59. extern pascal void Fix2X() inline(0x1E0B,dispatcher);
  60. extern pascal Fixed FixATan2() inline(0x170B,dispatcher);
  61. extern pascal Fixed FixDiv() inline(0x110B,dispatcher);
  62. extern pascal Fixed FixMul() inline(0x0F0B,dispatcher);
  63. extern pascal Fixed FixRatio() inline(0x0E0B,dispatcher);
  64. extern pascal Word FixRound() inline(0x130B,dispatcher);
  65. extern pascal Fixed Frac2Fix() inline(0x1D0B,dispatcher);
  66. extern pascal void Frac2X() inline(0x1F0B,dispatcher);
  67. extern pascal Frac FracCos() inline(0x150B,dispatcher);
  68. extern pascal Frac FracDiv() inline(0x120B,dispatcher);
  69. extern pascal Frac FracMul() inline(0x100B,dispatcher);
  70. extern pascal Frac FracSin() inline(0x160B,dispatcher);
  71. extern pascal Frac FracSqrt() inline(0x140B,dispatcher);
  72. extern pascal Word Hex2Int() inline(0x240B,dispatcher);
  73. extern pascal LongWord Hex2Long() inline(0x250B,dispatcher);
  74. extern pascal LongWord HexIt() inline(0x2A0B,dispatcher);
  75. extern pascal Word HiWord() inline(0x180B,dispatcher);
  76. extern pascal void IMBootInit() inline(0x010B,dispatcher);
  77. extern pascal void IMReset() inline(0x050B,dispatcher);
  78. extern pascal void IMShutDown() inline(0x030B,dispatcher);
  79. extern pascal void IMStartUp() inline(0x020B,dispatcher);
  80. extern pascal Boolean IMStatus() inline(0x060B,dispatcher);
  81. extern pascal Word IMVersion() inline(0x040B,dispatcher);
  82. extern pascal void Int2Dec() inline(0x260B,dispatcher);
  83. extern pascal void Int2Hex() inline(0x220B,dispatcher);
  84. extern pascal void Long2Dec() inline(0x270B,dispatcher);
  85. extern pascal Fixed Long2Fix() inline(0x1A0B,dispatcher);
  86. extern pascal void Long2Hex() inline(0x230B,dispatcher);
  87. extern LongDivRec LongDivide();
  88. extern LongMulRec LongMul();
  89. extern pascal Word LoWord() inline(0x190B,dispatcher);
  90. extern pascal Longint Multiply() inline(0x090B,dispatcher);
  91. extern IntDivRec SDivide();
  92. extern WordDivRec UDivide();
  93. extern pascal Fixed X2Fix() inline(0x200B,dispatcher);
  94. extern pascal Frac X2Frac() inline(0x210B,dispatcher);
  95. #endif
  96.